模版类 vector
// 容器
// vector<int> a {1,2,3,4,5};
vector<int> a;
for (int i = 0; i < 5; i++) {
a.push_back(i);
}
a.insert(a.begin()+3, 10); // 插入
a.erase(a.begin()+2); // 删除
// for (int i = 0; i < a.size(); i++) {
// printf(" %d \n", a[i]);
// }
for (vector<int>::iterator it = a.begin(); it != a.end(); it++) {
printf("%d\n", *it);
}
a.clear();
Queue
queue 模板类的定义在
queue 的基本操作有:
入队,如例:q.push(x); 将x 接到队列的末端。
出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问队首元素,如例:q.front(),即最早被压入队列的元素。
访问队尾元素,如例:q.back(),即最后被压入队列的元素。
判断队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()
queue<int> q;
for (int i = 0; i < 10; i++) {
q.push(i);
}
printf("size = %ld\n", q.size());
while (!q.empty()) {
printf("%d\n", q.front());
q.pop();
}
Stack
empty() 堆栈为空则返回真
pop() 移除栈顶元素
push() 在栈顶增加元素
size() 返回栈中元素数目
top() 返回栈顶元素
stack<int> p;
for (int i = 0; i < 10; i++) {
p.push(i);
}
printf("size = %ld\n", p.size());
while (!p.empty()) {
printf("%d\n", p.top());
p.pop();
}
list
assign() 给list赋值
back() 返回最后一个元素
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
empty() 如果list是空的则返回true
end() 返回末尾的迭代器
erase() 删除一个元素
front() 返回第一个元素
get_allocator() 返回list的配置器
insert() 插入一个元素到list中
max_size() 返回list能容纳的最大元素数量
merge() 合并两个list
pop_back() 删除最后一个元素
pop_front() 删除第一个元素
push_back() 在list的末尾添加一个元素
push_front() 在list的头部添加一个元素
rbegin() 返回指向第一个元素的逆向迭代器
remove() 从list删除元素
remove_if() 按指定条件删除元素
rend() 指向list末尾的逆向迭代器
resize() 改变list的大小
reverse() 把list的元素倒转
size() 返回list中的元素个数
sort() 给list排序
splice() 合并两个list
swap() 交换两个list
unique() 删除list中重复的元素
list<int> p;
for (int i = 0; i < 10; i++) {
p.push_back(i);
// p.push_front(i); }
p.insert(p.begin()++, 4, 100);
p.erase(p.begin()++);
while (!p.empty()) {
printf("size = %d\n", p.front());
p.pop_front();
}
map
map<int, int> p;
p[0] = 100;
p[1] = 200;
p.insert(map<int, int>::value_type(1, 100));
map<int, int>::iterator it = p.find(1);
printf("key = %d, value = %d\n", it->first, it->second);
🔚